# LSUP tree

`lsup_rdf`: basic graph and RDF creation, manipulation, validation, 
de/serialization, and storage. Written in C. C and Python APIs; command-line
utilities.

`lsup_repo`: repository services: organizes RDF data into "resources" made up
of several named graphs; framework-managed and user-defined triples;
resource-centric CRUD methods; binary storage and basic preservation
facilities; structures (containers/sets, linked lists, ORE proxies, etc.);
versioning, event stream. Built upon `lsup_rdf`. Written in C. C and Python
APIs; command-line utilities.

`lsup_server`: REST API and read-only GUI for `lsup_repo`: browse
(click-through) and query (matching pattern) facilities. Likely written in
Python. REST API.


# Basic features of `lsup_repo`

- Resources as collections of named graphs (by both URI pattern and linkage)
- Create, Read, Update, Delete a resource
  - Update by delta (triples to remove, by pattern; triples to add)
  - Update by overwriting (create-or-update approach)
  - Soft (bury + tombstone) and hard (forget) deletes
- Versioning; revert to version; resurrect or purge buried resources.
- Admin utilities
  - Blob fixity check
  - Repo integrity check
    - Referential integrity
    - RDF Resource integrity
    - Indices
  - Repo stats
  - Migrate repos

